package org.gws.alaska.metamodel.compiler


/**
 * @author Gianfranco Murador 
 * @version 1.0a
 * (C) Copyright 2012 Gianfranco Murador 
 * 
 * Estende il linguaggio con delle semplici keywords che formano 
 * i meta-Item del linguaggio. 
 */
class AlaskaMetaExtenderImpl extends AlaskaMetaExtender {
	def keys = [];
	def metaItem = [:];
	def keysPattern = [:];
	def classes = [:]

	def replaced = "".replaceAll(/(entity) ([a-zA-Z][a-zA-Z0-9]*) /, 'class $2');
	
	private String removeComments(String line){
		return line.replaceAll(/\/\*(.|[\r\n])*?\*\//, '');
	}

	public void loadMetaItems(list = []){
		keys = list;
		keys.each {
			keyPattern[it.value] = "("+it.value+")";
		}
	}

	/*s*
	 * Rimpiazza ogni parola chiave 
	 * con class 
	 */

	@Override
	public String replaceKeyWordWithClass(String line) {
		for (k in keys){
			if( lookupMetaName(line)){
				// Rimpiazza
			}
		}
		return line;
	}


	/***
	 * Cerca una keywords all'interno della linea 
	 * @param line
	 * @return
	 */
	@Override
	public boolean lookupMetaName(String line) {
		
		
				
	}
	


	@Override
	public void resetAll() {
		metaItem = [:] 
	}

	@Override
	public void resetMetaItem(String name) {

		metaItem.each {
			if( it.key == name){
				it.remove()
			}
		}
	}

	@Override
	public String replacePatternKeyword(String line,
			String pattern, String replace) {
		
		return null;
	}
}



